#include "PluginBullet.h"

#include <QMdiSubWindow>
#include <QLabel>
#include <EDesignerCore.h>
#include <ActionManager.h>

#include <QMetaProperty>
#include <iostream>
#include <EngineFunctions.h>
#include <SceneViewerFunctions.h>
#include <SceneViewer.h>

//#include <OsgSelectorManager.h>
//#include <OsgPickHandler.h>
//#include <OsgHudContainer.h>
//#include <CallBackHandler.h>

PluginBullet::PluginBullet()
{
    //m_objectInspectorModel = new ObjectInspectorModelOsg;
    m_directorBullet = QSharedPointer<ObjectInspectorDirectorBullet>(new ObjectInspectorDirectorBullet);
    m_simObjBullet = QSharedPointer<SimulationObjectBullet>(new SimulationObjectBullet);

    m_fileObjBullet = QSharedPointer<FileSystemObjectBullet>(new FileSystemObjectBullet);
    m_factoryObjBullet = QSharedPointer<ClassFactoryObjectBullet>(new ClassFactoryObjectBullet);



}


QString PluginBullet::name()
{
    return QString("PluginBullet");
}

EDesignerCustomPlugin::PluginType PluginBullet::pluginType()
{
	return EDesignerCustomPlugin::PluginType::UI_OBJECT_INSPECTOR;
}


QSharedPointer<ObjectInspectorDirector> PluginBullet::getObjectInspectorDirector()
{
    return m_directorBullet;
    //return EDesignerCustomPlugin::getObjectInspectorDirector();
}


QSharedPointer<SimulationObject> PluginBullet::getSimulationObject()
{
    return m_simObjBullet;
}

QSharedPointer<FileSystemObject> PluginBullet::getFileSystemObject()
{
    return m_fileObjBullet;

}

QSharedPointer<ClassFactoryObject> PluginBullet::getClassFactoryObject()
{
    return m_factoryObjBullet;
}

Q_EXPORT_PLUGIN2(EDesignerCustomPlugin, PluginBullet);
